#include<stdio.h>
#include<string.h>  // 字符串和内存的一些操作函数


//自动在尾部加\0
//strcpy
//strncpy
//strcat
//strncat


int main()
{
    //strlen : 计算字符串长度
    //const char *s = "helloworld";
    // 
    // printf("%ld\n",strlen(s));  //少一个'\0'
    // printf("%ld\n",sizeof(s));  

    //strcmp : 字符串比较函数
    // char s1[] = "helloworld";
    // char s2[] = "helloworld";
    // if(strcmp(s1,s2) == 0)
    // {
    //     printf("字符串相等\n");
    // }
    //printf("%d\n",strcmp(s2,s));

    //strncmp : 比较n个字符
    // char s1[] = "hello";
    // char s2[] = "helloworld";
    // if(strncmp(s1,s2,5) == 0)
    // {
    //     printf("字符串相等\n");
    // }


    //strcpy : 字符串拷贝函数
    // const char *s = "hello world";
    // char s2[10] = {0};
    // 不会管空间是否足够拷贝，内存访问可能会越界
    // strcpy(s2,s);  //把s指向的字符串拷贝给s2
    // printf("%s\n",s2);


    //strncpy : 拷贝n个字符
    // const char *s = "hello world";
    // char s2[10] = {0};
    // strncpy(s2,s,sizeof(s2)-1);  // -1 : 留一个空间给'\0'
    // printf("%s",s2);

    //strcat : 字符串拼接函数
    // char s[] = "hello";
    // char s2[7] = "world";
    // 不会管空间是否足够拷贝，内存访问可能会越界
    // strcat(s2,s);  // 把s拼到s2后面
    // printf("%s\n",s2);

    //strncat : 拼接n个字符
    // char s[] = "hello";
    // char s2[10] = "world";
    // strncat(s2,s,sizeof(s2)-1-strlen(s2));  // 还有多少个位置可以存放
    // printf("%s\n",s2);
    // 


    //strstr ：字符串匹配函数
    // char s1[] = "helloworld";
    // char s2[] = "ellp";
    // //如果找到，返回s2在s1中的首地址
    // //如果没找到，返回空指针
    // //寻找一个字符串的子串
    // char *dest = strstr(s1,s2);
    // if(dest)  //dest不为空
    // {
    //     printf("%s\n",dest);
    // }
    // else 
    // {
    //     printf("没找到！\n");
    // }

    // strtok : 字符串切割函数
    // 会修改源字符串，把分隔符变成\0
    
    //分隔符
    // char s[] = "zhangsan,lisi.wangwu";
    // // 要被分割的，分隔符的集合
    // // 返回值指针：切割下来的字符串的首地址
    // char *p = strtok(s,",.");
    // printf("%s\n",p);
    // //想切割之前的字符串，传NULL
    // p = strtok(NULL,",.");
    // printf("%s\n",p);

    // p = strtok(NULL,",.");
    // printf("%s\n",p);

    // //当没有可切割的字符串时，返回空指针
    // p = strtok(NULL,",.");
    // printf("%s\n",p);

    char s[] = "zhangsan,lisi.wangwu/laoliu";
    char *p = strtok(s,",.");
    while(p!=NULL)
    {
        printf("%s\n",p);
        p = strtok(NULL,",./");
    }



    return 0;
}